home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / NEW / A-Newest / Quittner.d64 / tpug info-10 < prev    next >
Text File  |  2009-01-03  |  6KB  |  107 lines

  1. ║CM:TPUG-10
  2. ║PT5:CN1:JU0:PG61
  3. ├╧═╨╒╘┼╥ ├╧══╧─╧╥┼ 64 & ├64 ╔╬╞╧╥═┴╘╔╧╬-10:
  4. ║PT12:CN0:JU1
  5. ├╚┴╬╟╔╬╟ ═┼═╧╥┘ ├╧╬╘┼╬╘╙:
  6.    ╘O PUT THE NUMBER 123, FOR EXAMPLE, INTO BYTE 20000 TYPE IN DIRECT MODE (WITHOUT LINE NUMBER) P╧20000,123
  7.    ╘O SEE WHAT IS IN, FOR EXAMPLE, 20000 TYPE ?P┼(20000)
  8.    ╘O SEE WHAT IS IN SEVERAL BYTES HERE IS A ┬┴╙╔├ PROGRAM TO DO THAT:
  9. 10 INPUT A:IFA=999T╚END
  10. 20 ?P┼(A);:G╧10
  11.    ╘O ENTER 0 TO 255 INTO MEMORY STARTING AT 20000 TYPE
  12. F╧I=0TO255:P╧20000+I,I:N┼
  13.    ╘O SEE WHAT IS IN BYTES 20005 TO 20020 TYPE
  14. F╧I=20005 TO 20020:?I;P┼(I):N┼
  15.    ╘O MOVE A WHOLE BLOCK, FOR EXAMPLE 20010 TO 20100, 2 BYTES UP, TYPE
  16. F╧I=20100TO20010STEP-1:P╧I+2,P┼(I):N┼
  17.    ╘O MOVE A WHOLE BLOCK, FOR EXAMPLE 20012 TO 20102, DOWN 2 BYTES TYPE
  18. F╧I=20012TO20102:P╧I-2,P┼(I):N┼
  19.    ╚ERE IS AN EXAMPLE PROGRAM TO ENTER DATA AND/OR TEXT INTO MEMORY STARTING AT 20000. ╬OTE THAT PRINTERS DIFFER; THIS WORKS FOR THE PRINTER ╔ USE:
  20.  
  21. ║JU0
  22. 0 REM "INTO MEMORY" BY ╩OE ╤UITTNER
  23. 10 PRINT C╚(144)C╚(14)
  24. 20 POKE 56,78:CLR :REM  PROTECT 20K+
  25. 100 PRINT "     ═┼╬╒:
  26. 101 PRINT " 1. ╘YPE INTO MEMORY          1000
  27. 102 PRINT " 2. ╙AVE MEMORY TO DISK       3000
  28. 103 PRINT " 3. ╠OAD MEMORY FROM DISK     8000
  29. 104 PRINT " 4. ╥EAD MEMORY               2000
  30. 199 :PRINT "        ╫╚╔├╚? ";:GOSUB997: PRINT G$
  31. 201 IF G$="1"THEN 1000
  32. 202 IF G$="2"THEN 3000
  33. 203 IF G$="3"THEN 8000
  34. 204 IF G$="4"THEN 2000
  35. 299 GOTO 199
  36. 997: POKE 204,0:GET G$:IF G$=""THEN 997
  37. 998 IF PEEK(207) THEN 998
  38. 999 POKE 204,1:RETURN 
  39. 1000 PRINT "╘O END INPUT HOLD DOWN THE ├╘╥╠ KEY WHILE TYPING E FOR END
  40. 1001 PRINT "╘O ENTER AN ┴╙├╔╔ NUMBER PRESS THE F1 KEY.
  41. 1010 N=0:M=20000-1:H$=""
  42. 1012 :GO╙ 997:G=ASC(G$+C╚(0))
  43. 1015 IFG=5T╚?:?N"ITEMS, LAST M IS"M:P╧ M+1,255:GO╙997:G╧100
  44. 1016 IF G=20 THEN M=M-1: N=N-1: A=PEEK(211):IFA>0T╚POKE 211,A-1
  45. 1017 IF G=20 THEN GOTO 1012
  46. 1018 IF G=133 THEN 1030:REM F1 KEY
  47. 1020 :N=N+1:M=M+1:POKE M,G:PRINT G$;: GOTO 1012
  48. 1030 :PRINT :INPUT" ┴╙├╔╔ ╬UMBER (0-255)";G
  49. 1032 G$="":?"["+MID$(ST╥(G),2)+"]";: GOTO 1020
  50. 2000 REM " ╥┼┴─ ═┼═╧╥┘
  51. 2002 GOSUB 4000
  52. 2010 FOR I=20000TO256*160-1:A=PEEK(I): IF A=255 THEN 2030
  53. 2011 IFA=13 THEN PRINT: IF P THEN P╥7:GOTO 2019
  54. 2012 IF A>31 AND A<91 THEN GOSUB2020: GOTO2019
  55. 2013 IF A>192 AND A<219 THEN GOSUB2020: GOTO2019
  56. 2018 IF P THEN PRINT#5,C╚(A);
  57. 2019 :NEXT:GOTO2030
  58. 2020 :PRINT C╚(A);:IF P THEN PRINT#7, C╚(A);
  59. 2022 RETURN 
  60. 2030 :PRINT:IF P THEN PRINT#7
  61. 2032 GOSUB 997:GOTO 100
  62. 3000 REM " SAVE TO DISK
  63. 3002 GOSUB 4000:INPUT" ╞╔╠┼╬┴═┼";F$:IFP THEN P╥7,F$":"
  64. 3010 N=0:OPEN8,8,8,"0:"+F$+",S,W
  65. 3012 FOR I=20000 TO 256*160-1:A=PEEK(I):IF A=255 THEN 3022
  66. 3014 PRINT#8,MID$(ST╥(A),2):IF P THEN PRINT#7,ST╥(A);
  67. 3020 N=N+1:PRINT ST╥(N);:NEXT:STOP
  68. 3022 :CLOSE8:PRINT N;I-1:IF P THEN PRINT#7
  69. 3024 GOSUB 997:GOTO 100
  70. 4000 REM "   ╞OR THE PRINTER AND INTERFACE ╔ USE:
  71. 4010 PRINT "  ╨RINTER ON? ";:GOSUB997: PRINT G$
  72. 4012 P=0:IF G$<>"Y" THEN RETURN 
  73. 4020 P=1:IF P1 THEN RETURN 
  74. 4021 P1=1:CLOSE5:CLOSE7:OPEN5,4,5: OPEN7,4,7
  75. 4030 FOR I=1TO10
  76. 4032 PRINT#5,C╚(27)C╚(108)C╚(5):REM LEFT MARGIN=5
  77. 4034 PRINT#5,C╚(27)C╚(81)C╚(77): NEXT: REM RIGHT MARGIN=77
  78. 4039 PRINT "  ╙ET INTERFACE TO ╩UNIOR":GOSUB997:RETURN 
  79. 8000 REM " ╞ROM DISK TO MEMORY
  80. 8002 N=0:M=20000-1:GOSUB4000:INPUT " ╞╔╠┼╬┴═┼";F$:IF P THEN PRINT#7,F$":"
  81. 8010 OPEN8,8,8,"0:"+F$+",S,R
  82. 8012 :INPUT#8,A:S=ST:M=M+1:POKEM,A:IF P THEN PRINT#7,A;
  83. 8013 N=N+1:PRINT N;A;:IF S=0 THEN 8012
  84. 8020 :PRINT N;"╠AST M="M-1:CLOSE8:IF P THEN PRINT#7,"╠AST M="M-1
  85. 8022 GOSUB997:GOTO100
  86.  
  87. ║JU1
  88.    ┬┴╙╔├ USES CONSECUTIVE BYTES CONTAINING NOT ONLY THE PROGRAM ITSELF, BUT ALSO ENOUGH SPACE FOR ┬┴╙╔├ TO DEPOSIT CONSTANTS, VARIABLES, ARRAYS AND STRINGS THAT ARE ADDED TO PROGRAM SPACE DURING THE RUNNING, BUT MACHINE LANGUAGE PROGRAMS ARE NOT SO LIMITED, THEY CAN USE ANY AVAILABLE BYTES. ┬┴╙╔├ SPACE, NORMALLY 2049 TO 40957, CAN BE REDUCED, AND THE REMAINDER THEN IS AVAILABLE FOR MACHINE LANGUAGE (M/L) PROGRAMS. ╘HERE IS A LARGE BLOCK, 4096 BYTES, AVAILABLE FOR M/L AT 49152-53247.
  89.    ╔ USE DISKS FOR STORAGE, SO THAT ALL BYTES IN ╥┴═ SET ASIDE FOR TAPE OPERATIONS MAY ALSO BE  FOR M/L, SUCH AS THE 204 BYTES 820-1023 AND THE 23 BYTES 2025 TO 2047. ┴LSO:
  90.    ╧N PAGE ZERO (BYTES 0-255) 4 BYTES 251-254, AND BYTE 2 ARE ALWAYS AVAILABLE FOR M/L. ╘APE STORAGE USES ON PAGE ZERO 146, 150, 155-156, 158-159, 165-166, 167 (ALSO USED BY ╥╙-232), 176-179, 190-192, 195-196. ╥╙-232 USES ON PAGE ZERO 167 (TAPE USE TOO), 168-171, 180-182, 189, 247-250. ╔N ADDITION, NOT(?) USED, BYTES 3-6 ARE AVAILABLE FOR M/L ON PAGE ZERO.
  91.    ╧N PAGE 1 (BYTES 256-511) TAPE STORAGE USES THE 63 BYTES 256-318.
  92.    
  93.    ╘O MAKE A LOT MORE M/L SPACE AVAILABLE IN ╥┴═, ┬┴╙╔├ CAN BE REMOVED COMPLETELY (MAYBE ONLY TEMPORARILY?), AND SO CAN THE COMPUTER'S OPERATING SYSTEM, BUT THEN THE USER WILL HAVE TO SOMEHOW PROVIDE SUBSTITUTES.
  94.    ╬ORMALLY THE 8192 BYTES 40960-49151 OF ╥┴═ ARE NOT USED, NOR ARE THE 8192 BYTES 57344-65535 OF ╥┴═. ╫HILE IT IS POSSIBLE TO POKE INTO THEM, PEEKING IS DIVERTED TO ╥EAD ╧NLY ═EMORIES (╥╧═) RESIDING IN SEPARATE HARDWARE (CHIPS). ┬YTE 1 CONTAINS SWITCHES THAT CONTROL PEEKING, WHETHER FROM THE NORMAL ╥╧═S OR, IF DESIRED, FROM THEIR UNDERLYING ╥┴═S.
  95.    ┬EFORE SWITCHING EITHER OF THESE FROM ╥╧═ TO ╥┴═ (IT MAY CAUSE COMPUTER HANG-UP!) IT IS POSSIBLE TO FIRST COPY (WAIT ABOUT 30 SECONDS) INTO ╥┴═ WHATEVER IS IN ╥╧═, THEN SWITCH TO ╥┴═ (AFTER FIRST DISABLING INTERRUPTS?). ╘HIS MAKES IT POSSIBLE TO THEN MAKE CHANGES, WHILE NO CHANGES TO CONTENTS CAN BE MADE WHILE THE ╥╧═ IS IN OPERATION.
  96.  
  97. F╧I=40960 TO 49151:P╧I,P┼(I):N┼
  98. F╧I=57344 TO 65535:P╧I,P┼(I):N┼
  99.  
  100.    ╘O SWITCH FROM ╥╧═ TO ╥┴═ IN RANGE 40960-49151 TYPE:
  101. P╧1,P┼(1) AND 254
  102.    ╘O SWITCH IT BACK TO ╥╧═ TYPE:
  103. P╧1,P┼(1) OR 1
  104.  
  105. ║JU0:PT20:CN1
  106. ┬Y ╩OE ╤UITTNER, ╘╨╒╟, ═ARCH 20, 2008.
  107.